/**
 * 格式化金额显示（千分位分隔符）
 * @param amount 金额
 * @returns 格式化后的金额字符串
 */
export const formatAmount = (amount: string | number): string => {
  if (!amount) return '0.00'
  return Number(amount).toLocaleString('zh-CN', { 
    minimumFractionDigits: 2, 
    maximumFractionDigits: 2 
  })
}

/**
 * 格式化百分比显示
 * @param percentage 百分比值
 * @param precision 小数位数
 * @returns 格式化后的百分比字符串
 */
export const formatPercentage = (percentage: string | number, precision: number = 2): string => {
  if (!percentage) return `0.${'0'.repeat(precision)}%`
  return `${Number(percentage).toFixed(precision)}%`
}

/**
 * 格式化带单位的数值显示
 * @param value 数值
 * @param unit 单位
 * @param precision 小数位数（仅对数字有效）
 * @returns 格式化后的字符串
 */
export const formatWithUnit = (value: string | number, unit: string, precision?: number): string => {
  if (!value) return '-'
  
  if (precision !== undefined && typeof value === 'number') {
    return `${value.toFixed(precision)}${unit}`
  }
  
  return `${value}${unit}`
}

/**
 * 验证数字范围
 * @param value 数值
 * @param min 最小值
 * @param max 最大值
 * @returns 是否在范围内
 */
export const validateRange = (value: number, min: number, max?: number): boolean => {
  if (value < min) return false
  if (max !== undefined && value > max) return false
  return true
}

/**
 * 验证是否为有效数字
 * @param value 值
 * @param allowDecimal 是否允许小数
 * @returns 是否为有效数字
 */
export const isValidNumber = (value: string | number, allowDecimal: boolean = true): boolean => {
  if (value === null || value === undefined || value === '') return false
  
  const num = Number(value)
  if (isNaN(num)) return false
  
  if (!allowDecimal && !Number.isInteger(num)) return false
  
  return true
} 